home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-02 / p_pascal.zip / SAMPLES / YESNO.PAS < prev   
Pascal/Delphi Source File  |  1990-02-12  |  1KB  |  35 lines

  1. (*$c+*)
  2. program yesno(Input, Output);
  3. const blanks = '     ';
  4. var x : packed array[1 .. 5] of char;
  5.     i : integer;
  6.  test : boolean;
  7. begin
  8.  { WHEREIN WE DEMONSTRATE STRING ASSIGNMENT AND COMPARISON; }
  9.  { NOTE THAT, IF YOU TYPE IN MORE THAN 5 CHARACTERS, THE }
  10.  { OVERFLOW CHARACTERS WILL BE LOST AND NOT PRINTED OUT: }
  11.  repeat
  12.   { IN THIS SYSTEM, ALL CHARACTER AND BOOLEAN ARRAYS }
  13.   { ARE IMPLICITLY 'PACKED' AS C char ARRAYS; SO THE }
  14.   { 'packed' KEYWORD HAS NO EFFECT.  STRING CONSTANT }
  15.   { ASSIGNED TO A PACKED CHAR ARRAY: }
  16.   x := blanks;
  17.   i := 0;
  18.   test := true;
  19.   write('Enter yes or no for the test: ');
  20.   while not eoln and (i < 5) do
  21.    begin i := i + 1; read(x[i]) end;
  22.   { PASCAL REQUIRES THAT YOU CLEAR THE EOLN CONDITION: }
  23.   readln; writeln;
  24.   { NOTE THAT WE ARE WRITING A char ARRAY HERE; THE }
  25.   { ':i' IS A VARIABLE FIELD-WIDTH SPECIFIER: }
  26.   writeln('You entered ''', x:i,'''.');
  27.   { STRING COMPARISON ETIQUETTE: }
  28.   if (x <> 'yes  ') and (x <> 'no   ') then
  29.    begin
  30.     test := false;
  31.     writeln('You have to enter either ''yes'' or ''no''.')
  32.    end
  33.  until test
  34. end.
  35.